﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ParsedXmlTreeInitialSettings.cs" company="" />
// <summary>
//   Defines a settings container for the 'ParsedXmlTree' class.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Utilities
{
    using System.Collections.Generic;

    /// <summary>
    /// Defines a settings container for the 'ParsedXmlTree' class.
    /// </summary>
    public class ParsedXmlTreeInitialSettings
    {
        /// <summary>
        /// Initializes an instance of <see cref="ParsedXmlTreeInitialSettings"/> class with default settings.
        /// </summary>
        public ParsedXmlTreeInitialSettings()
        {
            DefaultKeyName = null;
            KeyMap = null;
            IgnoreValueCase = false;
            IgnoreNameCase = false;
            IgnoreWhiteSpaces = false;
        }

        /// <summary>
        /// Gets or sets the default key for the parsed XML.
        /// </summary>
        public string DefaultKeyName { get; set; }

        /// <summary>
        /// Gets the map of element path -> attribute name which is the key to the element in that path.
        /// </summary>
        public IReadOnlyDictionary<string, string> KeyMap { get; set; }

        /// <summary>
        /// Gets or sets whether the value of XML objects is case insensitive.
        /// </summary>
        public bool IgnoreValueCase { get; set; }

        /// <summary>
        /// Gets or sets whether the names of XML objects is case insensitive.
        /// </summary>
        public bool IgnoreNameCase { get; set; }

        /// <summary>
        /// Gets or sets whether to ignore the white-spaces of the values of XML objects.
        /// </summary>
        public bool IgnoreWhiteSpaces { get; set; }
    }
}
